package com.eduagent.xwqeduagent.model.vo;

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 实时练习评测助手返回对象
 */
@Data
public class ExerciseEvaluationVO {

    /**
     * 回复类型：GUIDANCE（解题思路）, EVALUATION（评测结果）, SUMMARY（总结）, EXERCISE（强化练习）
     */
    private String responseType;

    /**
     * 回复内容
     */
    private String content;
    
    /**
     * 评测分数（仅当responseType为EVALUATION时可能返回）
     * 范围0-100
     */
    private Integer score;
    
    /**
     * 错误分析（仅当responseType为EVALUATION时可能返回）
     */
    private String errorAnalysis;
    
    /**
     * 强化练习题目列表（仅当responseType为EXERCISE时返回）
     */
    private List<ExerciseItem> exerciseItems;
    
    /**
     * 学习建议（仅当responseType为SUMMARY或EVALUATION时返回）
     */
    private List<String> suggestions;
    
    /**
     * 多题目评测结果（仅当responseType为EVALUATION且评测多题时返回）
     */
    private List<QuestionEvaluation> evaluationResults;
    
    /**
     * 总体评价（仅当responseType为EVALUATION且评测多题时返回）
     */
    private String overallEvaluation;
    
    /**
     * 批量评测的总分
     */
    private Double totalScore;
    
    /**
     * 批量评测的得分
     */
    private Double earnedScore;
    
    /**
     * 单个题目评测结果
     */
    @Data
    public static class QuestionEvaluation {
        /**
         * 题目ID
         */
        private String questionId;
        
        /**
         * 题目内容
         */
        private String questionText;
        
        /**
         * 题目类型
         */
        private String type;
        
        /**
         * 学生答案
         */
        private String studentAnswer;
        
        /**
         * 正确答案
         */
        private List<String> correctAnswers;
        
        /**
         * 评分（0-100或基于题目原始分值）
         */
        private Double score;
        
        /**
         * 题目满分
         */
        private Double fullScore;
        
        /**
         * 答案是否正确
         */
        private Boolean isCorrect;
        
        /**
         * 错误分析（仅当答案错误时返回）
         */
        private String errorAnalysis;
        
        /**
         * 答案解析
         */
        private String explanation;
    }
    
    /**
     * 练习题目对象，遵循与XwqQuizGeneratorManus相同的JSON格式
     */
    @Data
    public static class ExerciseItem {
        /**
         * 题目ID
         */
        private String id;
        
        /**
         * 题目内容
         */
        private String questionText;
        
        /**
         * 题目类型
         * MULTIPLE_CHOICE, TRUE_FALSE, FILL_IN_THE_BLANK, SHORT_ANSWER, ESSAY, COMPUTATIONAL, MATCHING
         */
        private String type;
        
        /**
         * 选项（用于选择题和匹配题）
         */
        private Map<String, String> options;
        
        /**
         * 正确答案列表
         */
        private List<String> correctAnswers;
        
        /**
         * 答案解析
         */
        private String explanation;
        
        /**
         * 难度级别 EASY, MEDIUM, HARD
         */
        private String difficulty;
        
        /**
         * 相关知识点列表
         */
        private List<String> knowledgePoints;
        
        /**
         * 题目分值
         */
        private Double score;
        
        /**
         * 备注
         */
        private String remarks;
        
        /**
         * 媒体URL（图片、音频等）
         */
        private String mediaUrl;
    }
} 